
//interview_16.06 最小差
class Solution {
public:
    int smallestDifference(vector<int>& a, vector<int>& b) {
        
        //通过遍历数组中的所有数来在最小差
        //直接枚举时间复杂度过高
        //先对数组进行排序，遍历两个数组让其元素逐渐靠近
        sort(a.begin(),a.end());
        sort(b.begin(),b.end());

        long long ret=INT_MAX;
        int n=a.size(),m=b.size();
        int i=0,j=0;
        while(i<n&&j<m)
        {
            ret=min(ret,abs((long long)a[i]-b[j]));
            if(a[i]>b[j]) j++;
            else i++;
        }
        return ret;
    }
};